/**
 * 
 */
package br.com.skynix.tcmc.model.oportunidade;

import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;

import org.hibernate.annotations.ForeignKey;

import br.com.skynix.tcmc.base.model.EntidadeAuditavel;
import br.com.skynix.tcmc.model.conta.Contato;

/**
 * @author davi
 * 
 */
@Entity
@Table(name = "tb_oportunidade_contato")
public class OportunidadeContato extends EntidadeAuditavel {
	@NotNull
	@ManyToOne
	@JoinColumn(name = "id_oportunidade_fk", referencedColumnName = "id",
			nullable = false)
	@ForeignKey(name = "FK001_oportunidade_contato")
	private Oportunidade oportunidade;

	@NotNull
	@ManyToOne
	@JoinColumn(name = "id_contato_fk", referencedColumnName = "id",
			nullable = false)
	@ForeignKey(name = "FK002_oportundiade_contato")
	private Contato contato;

	@ManyToOne
	@JoinColumn(name = "id_papel_contato_fk", referencedColumnName = "id",
			nullable = true)
	private PapelContato papelContato;

	/**
	 * @return the oportunidade
	 */
	public Oportunidade getOportunidade() {
		return oportunidade;
	}

	/**
	 * @param oportunidade the oportunidade to set
	 */
	public void setOportunidade(Oportunidade oportunidade) {
		this.oportunidade = oportunidade;
	}

	/**
	 * @return the contato
	 */
	public Contato getContato() {
		return contato;
	}

	/**
	 * @param contato the contato to set
	 */
	public void setContato(Contato contato) {
		this.contato = contato;
	}

	/**
	 * @return the papelContato
	 */
	public PapelContato getPapelContato() {
		return papelContato;
	}

	/**
	 * @param papelContato the papelContato to set
	 */
	public void setPapelContato(PapelContato papelContato) {
		this.papelContato = papelContato;
	}
}
